/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package BusinessTier;

import DataTier.LiquidacaoDAO;
import EntitiesTier.ClLiquidacao;
import java.io.IOException;
import java.util.List;
/**
 *
 * @author Douglas
 */
public class LiquidacaoBUS 
{
    public List<ClLiquidacao> listar() throws Exception
    {
        try
        {
            LiquidacaoDAO dao = new LiquidacaoDAO();
            return dao.todos();
        }
        catch(IOException  e)
        {
            System.err.println("Erro: " + e.getMessage());
            return null;
        }    
    }
    
    public List<ClLiquidacao> listar(int liq_cont) throws Exception
    {
        try
        {
            LiquidacaoDAO dao = new LiquidacaoDAO();
            return dao.todos(liq_cont);
        }
        catch(IOException  e)
        {
            System.err.println("Erro: " + e.getMessage());
            return null;
        }    
    }
    
    public int inserir(ClLiquidacao obj) throws Exception
    {
        try
        {
            if(valida_adicao(obj))
            {
                LiquidacaoDAO dao = new LiquidacaoDAO();
                obj.setLIQ_COD(dao.incluir(obj));
            }
        }
        catch(IOException  e)
        {
            System.err.println("Erro: " + e.getMessage());
        }
        finally
        {
           return obj.getLIQ_COD();
        }
    }
    
    public void atualizar(ClLiquidacao obj) throws Exception
    {
        try
        {
            if(valida_adicao(obj))
            {
                LiquidacaoDAO dao = new LiquidacaoDAO();
                dao.atualizar(obj);            
            }
        }
        catch(IOException  e)
        {
            System.err.println("Erro: " + e.getMessage());
        }
    }
    
    public ClLiquidacao buscar(int cod_liq) throws Exception
    {
        try
        {
            LiquidacaoDAO dao = new LiquidacaoDAO();
            return dao.procurar(cod_liq);
        }
        catch(IOException  e)
        {
            System.err.println("Erro: " + e.getMessage());
            return null;
        }
    }
    
    public void excluir(int cod_liq) throws Exception
    {
        try
        {
            LiquidacaoDAO dao = new LiquidacaoDAO();
            dao.excluir(cod_liq);
        }
        catch(IOException  e)
        {
            throw new Exception("Erro: " + e.getMessage());
        }
    }
    
    public void excluir_cont(int cod_cont) throws Exception
    {
        try
        {
            LiquidacaoDAO dao = new LiquidacaoDAO();
            dao.excluir_cont(cod_cont);
        }
        catch(IOException  e)
        {
            throw new Exception("Erro: " + e.getMessage());
        }
    }    
    
    public boolean valida_adicao(ClLiquidacao obj) throws Exception
    {
        if(obj.getLIQ_CONT() == 0 )
        {
            throw new Exception("Deve Selecionar o Contrato.");
        }

        if(obj.getLIQ_NF() == null || obj.getLIQ_NF() == "")
        {
            throw new Exception("Deve preencher a Nota Fiscal.");
        }

        if(obj.getLIQ_SERIE() == null || obj.getLIQ_SERIE() == "")
        {
            throw new Exception("Deve preencher o Valor Inicial");
        }
        
        if(obj.getLIQ_VALOR() == 0)
        {
            throw new Exception("Deve preencher o Valor da Liquidação");
        }
        return true;       
    }
}
